package cn.itcast.scala.course05

/**
  * List集合 - 有序可重复
  * create by zhangtian on 2019/1/3
  */
object ListApp extends App {
  val l = List(1, 2, 3, 4, 5)
  l.head // 取出第一个头结点
  l.tail // 取出头结点之外的其他节点

  l::Nil // 将l集合与Nil拼接为一个新的List

  val l2 = 2 :: l

  val l3 = 1::2::3::4::Nil
  l.length

  // 变长List
  val l4 = scala.collection.mutable.ListBuffer[Int]()
  // 添加与删除元素
  l4 += 2
  l4 += (3, 4, 5)
  l4 ++= List(6, 7, 8, 9)
  l4 -= 2
  l4 -= 5
  l4 -= (2, 3)
  l4 --= List(5,6,7,8)

  // 变为定长
  l4.toList
  l4.toArray
  l4.isEmpty
  l4.head
  l4.tail
  l4.tail.head

  println(l4)


  def sum(nums: Int*): Int = {
    if(nums.length == 0){
      0
    }else {
      nums.head + sum(nums.tail:_*) // :_*可以将一个Seq转换为可变的参数类型
    }
  }

  println(sum())
  println(sum(1,2,3,4,5,6,7,8,9))
}
